package org.example.http;

import java.io.InputStream;
import java.io.UnsupportedEncodingException;

public interface HttpServletRequest {
    /**
     * 获取输入流
     * @return
     */
    InputStream getInputStream();
    /**
     * 返回请求的 HTTP 方法的名称，例如，GET、POST 或 PUT。
     * @return
     */
    String getMethod();
    /**
     * 从协议名称直到 HTTP 请求的第一行的查询字符串中，返回该请求的 URL 的一部分。
     * @return
     */
    String getRequestURI();
    /**
     * 返回请求协议的名称和版本。
     * @return
     */
    String getProtocol();
    /**
     * 以字符串形式返回指定的请求头的值。
     * @param name
     * @return
     */
    String getHeader(String name);
    /**
     * 返回一个数组，包含客户端发送该请求的所有的 Cookie 对象。
     * @return
     */
    Cookie[] getCookies();
    /**
     * 返回与该请求关联的当前 session 会话，或者如果请求没有 session 会话，则创建一个。
     */
    HttpSession getSession();
    /**
     * 以字符串形式返回请求参数的值，或者如果参数不存在则返回 null。
     * @param name
     * @return
     */
    String getParameter(String name);
    /**
     * 返回一个字符串对象的数组，包含所有给定的请求参数的值，如果参数不存在则返回 null。
     * @param name
     * @return
     */
    String[] getParameterValues(String name);
    /**
     * 返回包含在路径后的请求 URL 中的查询字符串。
     * @return
     */
    String getQueryString();
    /**
     * 设置请求字符集。
     */
    public void setCharacterEncoding(String env)
            throws UnsupportedEncodingException;
}
